#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
include /usr/share/dpkg/pkg-info.mk

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

export INSTALL_MOD_DIR:=extra

PYTHON         ?= python2

PACKAGE_PRE_NAME := sonic-platform-pddf
KVERSION   ?= $(shell uname -r)
KERNEL_SRC :=  /lib/modules/$(KVERSION)
MOD_SRC_DIR:= $(shell pwd)
MODULE_DIRS:= client cpld cpld/driver cpldmux cpldmux/driver fan fan/driver fan/vendor_api mux gpio led psu psu/driver sysstatus xcvr xcvr/driver
MODULE_DIR:= modules
UTILS_DIR := utils
SERVICE_DIR := service

%:
	echo =================RUNNING $@=============
	dh $@ --with systemd,python2,python3 --buildsystem=pybuild

clean:
	echo ============CLEANING=================
	dh_testdir
	dh_testroot
	dh_clean
	make -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR) clean

build:
	make modules -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR); \
	$(PYTHON) $(MOD_SRC_DIR)/setup.py build; \

binary: binary-arch binary-indep
	# Nothing to do

binary-arch: 
	# Nothing to do

binary-indep:
	dh_testdir
	dh_installdirs
	dh_installdirs -p$(PACKAGE_PRE_NAME) $(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
	dh_installdirs -p$(PACKAGE_PRE_NAME) usr/local/bin; \
	# Custom package commands
	(for mod in $(MODULE_DIRS); do \
			cp $(MOD_SRC_DIR)/$(MODULE_DIR)/$${mod}/*.ko debian/$(PACKAGE_PRE_NAME)/$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
	done) ; \
	cp -r $(MOD_SRC_DIR)/$(UTILS_DIR)/* debian/$(PACKAGE_PRE_NAME)/usr/local/bin/; \
	$(PYTHON) $(MOD_SRC_DIR)/setup.py install --root=$(MOD_SRC_DIR)/debian/$(PACKAGE_PRE_NAME) --install-layout=deb;

	# Resuming debhelper scripts
	dh_testroot
	dh_install
	dh_installchangelogs
	dh_installdocs
	dh_systemd_enable
	dh_installinit
	dh_systemd_start
	dh_link
	dh_fixperms
	dh_compress
	dh_strip
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb
.PHONY: build binary binary-arch binary-indep clean
